Stejně jako v životě i v procedurách je nutné se rozhodovat na základě nějakých podmínek. Dochází potom k takzvanému větvení procedur, jsou-li podmínky splněny, jsou vykonány jiné příkazy, než když podmínky splněny nejsou.
Základní struktura příkazů pro větvení je:
if podmínka [příkazy]
- jestliže je splněna podmínka, vykonají se příkazy v hranaté závorce.
ifelse podmínka [příkazy1][příkazy2]
- jestliže je splněna podmínka, vykonají se příkazy v první hranaté závorce, pokud podmínka splněná není, vykonají se příkazy ve druhé závorce.
Jako podmínku v této lekci vyzkoušíme barvu bodu, na kterém želvička stojí, pro její zjištění se používá
dotColour, například:
if dotcolour="red [fd 50]
- znamená: jestli želvička stojí na červeném bodě, popojde o 50 kroků.
Tyto poznatky využijeme k vytvoření projektu, při kterém se želvička bude pohybovat v prostoru vymezeném barevnou čárou a přitom tuto čáru nepřekročí - nazveme jej například bruslení:
Nejprve bude potřeba připravit "kluziště". Použijeme k tomu Panel kreslení (nabídka Zobrazit - Panel kreslení, nebo ikonku ze základního panelu (viz obrázek)). Tento panel obsahuje nástroje podobné těm, které znáte z jednoduchých bitmapových editorů (například Kreslení), jejich používání pro vás nebude složité.
Vyberte barvu a tloušťku čáry pro "mantinel", při výběru zůstaňte chvilku kurzorem nad barvou či tloušťkou, aby se vám ukázal název barvy či velikost tloušťky čáry, budete je potřebovat v proceduře. Pro kresbu "mantinelů" použijte například ovál, ten potom pomocí nálevky vyplňte například modrou barvou. Ukázku takového "kluziště" (nebo rybníka? :-)) máte na obrázku:
Procedura nebude příliš složitá:
to brusle
pu
fd 5 wait 50
text1'setvalue "jedu
if dotcolour="taupe5 [bk 5 rt any text1'setvalue "bum wait 200]
brusle
end
Prvním příkazem v proceduře je zvednutí pera, jinak by barva bodu byla barvou čáry, kterou želva kreslí.
Ve druhém řádku procedury želvička popojde, s tím, že počet kroků by měl být menší než tloušťka čáry "mantinelu" (víte proč?), potom chvilku počká, aby se nezadýchala.
Ve třetím řádku se objektu text1 nastaví hodnota "jedu, neboli do textového pole text1 se vypíše slovo jedu (vzpomeňte si na posuvníky).
Čtvrtý řádek obsahuje podmínku - jestliže je barva bodu, na kterém želva stojí, hnědá (barva "mantinelu"), pak želvička narazila, couvne o kousek, do pole text1 vypíše bum a počká delší chvíli, aby se vzpamatovala :-) .
Poslední řádek procedury zajistí její stálé opakování - tzv. rekurze z minulé lekce, jistě si budete pamatovat, jak takovou proceduru zastavit. (Pokud ne, rychle se podívejte do minulé lekce, než se vám úplně "zastaví" počítač.)
Vytvoř projekt brusleni podle textu lekce a přidej želvičce ještě nějaké překážky (stejnou barvou, jakou je okraj plochy).
Vytvoř projekt bludiste, ve kterém se bude želvička pohybovat podobně jako na "kluzišti" v lekci, ale zastaví se (stop nebo stopall), pokud najde cíl (oblast s jinou barvou než jsou hranice nebo překážky). Tlačítka pro start a konec pohybu nesmí chybět, stejně jako textové pole, do kterého se bude vypisovat doprovodný text..
Vytvoř projekt Dostihy, ve kterém se po rovné závodní dráze pohybují po přímce náhodně se měnící rychlostí tři želvičky různých tvarů (závodníci). Závod skončí doběhnutím první želvičky do "cílové pásky". Tlačítkem "Zpět na start" se vrátí želvičky znovu do startovní polohy, tlačítkem "Start" se závod znovu odstartuje.
Pro nalezení východu z bludiště (dveře jsou ve stěně) se používá tzv. pravidlo pravé ruky: dojdeme ke stěně bludiště a jdeme stále kolem ní tak, že se jí "držíme" pravou rukou. Tak máme jistotu, že po nějaké době na dveře narazíme (pokud neexistují, obejdeme všechny stěny a vrátíme se do původní polohy). Naprogramujte želvičku tak, aby dokázala najít východ z libovolného bludiště!